//*****************************************************************************
//Nom du projet : Noyau multi taches
//Nom du fichier : User.h
//Date de creation : 21/06/04
//Date de derniere modification : 21/06/04
//Nom du programmeur : Cyril Dupuit
//Version : 1.0
//*****************************************************************************

#include "Kernel/Core.h"
#include "Lib/Queue.h"
#include "Kernel/Semaphor.h"

#ifndef KEYB_HEADER
#define KEYB_HEADER

//*****************************************************************************

#define F1_KEY	0xFF3B
#define F2_KEY	0xFF3C
#define F3_KEY	0xFF3D
#define F4_KEY	0xFF3E
#define F5_KEY	0xFF3F
#define F6_KEY	0xFF40
#define F7_KEY	0xFF41
#define F8_KEY	0xFF42
#define F9_KEY	0xFF43
#define F10_KEY	0xFF44

#define F11_KEY	0xFF45
#define F12_KEY	0xFF46

#define F13_KEY	0xFF54
#define F14_KEY	0xFF55
#define F15_KEY	0xFF56
#define F16_KEY	0xFF57
#define F17_KEY	0xFF58
#define F18_KEY	0xFF59
#define F19_KEY	0xFF60
#define F20_KEY	0xFF61
#define F21_KEY	0xFF62
#define F22_KEY	0xFF63

#define F23_KEY	0xFF45
#define F24_KEY	0xFF46

#define HOME_KEY	0xFF47
#define UP_KEY		0xFF48
#define PGUP_KEY	0xFF49
#define LEFT_KEY	0xFF4B
#define RIGHT_KEY	0xFF4D
#define END_KEY		0xFF4F
#define DOWN_KEY	0xFF50
#define PGDN_KEY	0xFF51
#define INSERT_KEY	0xFF52
#define DEL_KEY		0xFF53

//*****************************************************************************

typedef struct Keyboard {
		Status_t	Status;//Etat du clavier
		Status_t	Leds;//Etat des leds
} Keyboard_t;

//*****************************************************************************
// But de la fonction : Initialiser le vecteur d'interruption ainsi que le
// clavier et sa structure de gestion (Creation de la file d'attente et d'un
// semaphore compteur). 
// Entree : Aucune
// Parametre retourne : ERROR si memoire insuffisante, TRUE sinon
//*****************************************************************************
Status_t KeyboardInit(void);

//*****************************************************************************

#endif
